package com.mmren.edu.common.result;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 欢迎来到牧码人教育，做Java我们是专业的
 *
 * @创建人： 牧码人教育-Gerry
 * @创建时间： 2020-4-29
 * @功能描述： 公共的资源响应信息类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommonResult<T> {
    private int code; // 状态码
    private String status; // 状态信息
    private T data; // 响应数据

    /**
     * 调用成功并响应数据的方法
     * @param data
     * @param <T>
     * @return
     */
    public static <T> CommonResult<T> OK(T data) {
        return new CommonResult<>(ResponseStatus.OK.getCode(),
                ResponseStatus.OK.getStatus(), data);
    }

    /**
     * 调用成功不需要响应数据的方法
     * @return
     */
    public static CommonResult OK() {
        return new CommonResult(ResponseStatus.OK.getCode(),
                ResponseStatus.OK.getStatus(), null);
    }

    /**
     * 调用失败的响应方法
     * @return
     */
    public static CommonResult NO() {
        return new CommonResult(ResponseStatus.NO.getCode(),
                ResponseStatus.NO.getStatus(), null);
    }
}
